<?

/**
 * GEO class
 *
 * Esta clase maneja las provincias, localidades y paises
 * @author Alejandro Garcia del Rio <alejandro.garciadelrio@elserver.com>
 * @version 1.0
 * @package GEO
*/
class GEO extends Core {

	static protected $instancia;

	/**
	 * Constructor de la clase.
	 * 
	 * @param array $opciones (opcional) Opciones validas para esta clase
	 */
	function __construct ($opciones=null) {
		// Llamo al constructor del parent tambien
		parent::__construct();
		// Guardo las opciones si me definio alguna
		if ($opciones)
			$this->opciones($opciones);
	}

	/**
	 * Setea las opciones 
	 * 
	 * @param array $opciones (opcional) Opciones validas para esta clase. Si esta vacio, funciona como un getter.
	 * @return array $opciones Listado de opciones
	 */
	public function opciones ($opciones=null) {
		return self::$opciones = parent::opciones(self::$opciones, $opciones);
	}

	/**
	 * Devuelve una unica instancia de esta clase
	 * 
	 * @return object Instancia de esta clase
	 */
	public static function getInstance() {
		if (!self::$instancia instanceof self)
			self::$instancia = new self;
		return self::$instancia;
	}

	/**
	 * Devuelve el listado de provincias
	 * 
	 * @return array 
	 */
	public function provincias() {
	
		// Obtengo un objeto de conexion a la base
		$db = ($this)? $this->db : ez_sql::getInstance();

		$provincias = array();
		if ($_provincias = $db->get_results("SELECT * FROM provincias"))
			foreach ($_provincias as $_provincia)
				$provincias[$_provincia['id_provincia']] = $_provincia['provincia'];

		return $provincias;
	}

}
?>
